Method and apparatus for enhanced internet telephony

ABSTRACT

A method and apparatus for enhanced Internet telephony ensures that communication between a source and destination is not interrupted by common network address translation. According to one aspect of the invention, communication may continue through a router that employs network address translation.

The present application is a divisional application that claims prioritybenefit of U.S. patent application Ser. No. 10/684,593 entitled “Methodand Apparatus for Enhanced Internet Telephony”, the disclosure of whichis hereby incorporated by reference.

BACKGROUND OF THE INVENTION

Today, most common residential broadband deployments are delivered viaeither cable or DSL modem. Such broadband deployment typically providescustomers with a single Ethernet port that grants one public IP addressto a single computer device. Given this situation, customers arerestricted to using only one computer, and must purchase a router ifthey desire to share the broadband connection to access, for example,the Internet between more than one of the customer's computer devices.

To transport media and telephone signaling, customers commonly use aMulti Media Terminal Adapter (MTA) coupled between their source device(e.g., a computer or telephone) and their broadband connection. Oneexample of a common Media Terminal Adapter is the Cisco ATA 186 Analogto Telephone Adapter (ATA) manufactured by Cisco Systems, Inc. of SanJose Calif. In the case of Internet telephony, the Media TerminalAdapter operates as a handset to Ethernet adapter that convertstraditional telephone analog signals into Internet packets. The packetsare then sent using, for example, a standard protocol such as SessionInitiation Protocol (SIP) on route towards their destination.

FIG. 1 is a schematic representation of an example user InternetTelephony environment. In FIG. 1, a cable modem 10 provides access tothe Internet 20. In the FIG. 1 example, the user employs an intermediatecommunication point, e.g., router 30 to provide multiple devices accessto the Internet 20. The router 30 assigns respective private dynamic IPaddresses to the Media Terminal Adapter 40 and to the computer 50. Asshown in the FIG. 1 example, the Media Terminal Adapter 40 is coupled toa common telephone handset 60. The Media Terminal Adapter 40 receivessignals from the handset 60, creates packets and sends data packets tothe Router 30, which in turn sends them to the cable modem 10 andeventually to the Internet 20.

A major drawback of the above typical environment is the difficulty inaccommodating the Network Address Translation (NAT) that is typicallyimplemented by the router 30. As is commonly understood, a Dynamic HostConfiguration Protocol server running on the router 30 assigns privatedynamic IP addresses to the Media Terminal Adapter 40 and computer 50;thus effecting Network Address Translation (NAT).

When a user wishes to initiate a call and activates the telephonehandset 60, the handset sends signals to the Media Terminal Adapter 40.The Media Terminal Adapter 40 then begins the communication/registrationprocess with an Internet telephone service provider. The communicationbetween the Media Terminal Adapter 40 and a server of the Internettelephone service provider employs a standard protocol such as SessionInitiation Protocol. But, the router 30 performs the Network AddressTranslation on a timed basis. As is commonly known, typical routers usedin home environments assign private IP addresses to devices connected tothe router. But, those addresses are valid only for a limited time.Thus, after the limited time expires, the private address is no longerassigned to a given device, such as the Media Terminal Adapter 40. As aresult, the SIP messages sent from Internet telephone service provider'sserver are not passed by the router 30 to the Media Terminal Adapter 40.Consequently, the Media Terminal Adapter 40 can send SIP messages, butis not able to receive packets from the Internet Telephone serviceprovider's server due to the router 30 losing the originating outboundport and making communication to an MTA located behind a routerimpossible.

FIG. 2 is a schematic representation of an example environment thataddresses the issue of router 30 losing an outbound port during anInternet telephone connection. In the FIG. 2 example, at the Internettelephone service provider, a destination, e.g., a pre-proxy server 70,receives messages from the router 30. Pre-proxy server 70 records theprivate IP address of the Media Terminal Adapter 40 during, for example,the SIP registration process. It also records the network addresstranslation communication port assigned by the router 30 to the MediaTerminal Adapter 40 to and from which it will send and receive messages,such as SIP messages. Upon registration, the Media Terminal Adapter 40passes fields used to communicate with the pre-proxy server 70. Examplesof fields, that can be passed include, for example, the private IPaddress of the Media Terminal Adapter 40, the public IP address of therouter 30, and port information. After the pre-proxy server 70 receivesthe information from the Media Terminal Adapter 40, the pre-proxy server70 periodically sends, for example, blank UDP messages to the MediaTerminal Adapter 40, which contain the same destination and sourceaddress as a typical SIP message would have. Other messages could beused instead of the UDP message. The message used should prompt theMedia Terminal Adapter 40 to send a response to the pre-proxy server 70.The pre-proxy server 70 sends, for example, the UDP message to therouter 30 using the public IP address of the router 30 and the portinformation received in the message from the router 30. The pre-proxyserver 70 sends, for example, the UDP within the limited time that therouter 30 maintains that private address assigned to the Media TerminalAdapter. The router 30 accordingly routes the message to the destinationdesignated in the message from the pre-proxy server 70. The pre-proxyserver 70 also maintains the private and public IP addresses of the MTAand rewrites the headers in the actual SIP messages based on thisinformation.

The above solution worked, but it did not solve the network addresstranslation problem for all routers. For example, some routers wouldclose the outbound port if the device behind the router's networkaddress translation did not send an outbound message. Thus, there is aneed for a solution to the problem, in Internet telephony, of thenetwork address translation that a router performs as a part of itsintended operation.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide a method andapparatus for enhanced Internet telephony that avoids the abovedrawbacks.

It is another object of the present invention to provide a method andapparatus for enhanced Internet telephony that allows the use of SessionInitiated Protocol technology.

It is a further object of the present invention to provide a method andapparatus for enhanced Internet telephony that allows the use of SessionInitiated Protocol technology within environments employing networkaddress translation.

It is still another object of the present invention to provide a methodand apparatus for enhanced Internet telephony that allows the use ofSession Initiated Protocol technology with routers employing networkaddress translation.

To achieve the above and other object, the present invention provides amethod for providing enhanced Internet telephony that includes receivinga message from a source at an intermediate point; sending at least aportion of the message from the intermediate point to a destination overthe Internet; sending a response to the message from the destination tothe intermediate point over the Internet; sending the response from theintermediate point to the source; repeatedly sending other messages fromthe destination over the Internet to the intermediate point; sending atleast a portion of corresponding ones of the other messages from theintermediate point to the source; and sending responses to the portionsof the other messages from the source to the intermediate point.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic representation of an example user InternetTelephony environment.

FIG. 2 is a schematic representation of an example environment intendedto address the issue of a router losing an outbound port during anInternet telephone connection.

FIG. 3 is a schematic representation of an example environment employingthe present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 3 is a schematic representation of an example environment employingan embodiment of the present invention. In FIG. 3, a user initiates acall using a telephone handset 60. As described above, the mediaterminal adapter 40 implements standard signaling between itself and anInternet telephony regional data center 80. Once the user has beenregistered and the destination has provided a SIP acknowledgment of theSIP invite sent by the media terminal adapter 40, communication betweenthe caller 60 and a customer in a destination area 100 proceeds using,for example, Real-time Transport Protocol (RTP) between the caller and acustomer in the destination area 100 via the Internet 20 and, forexample, a RTP relay 90 in Internet telephony point-of-presence 110 inthe destination area 100.

However, with the call set up as described above, the router 30 mayclose the outbound port after a timeout period. As a result, voice datafrom the customer in the destination area 110 will not reach thetelephone handset 60 behind router 30. To avoid the router 30 timing outand closing the outbound port, an embodiment of the present inventioncauses the media terminal adapter 40 to send an outbound message to theInternet telephony regional data center 80. One way of accomplishingthis is to have the pre-proxy server 75 periodically send an empty SIPnotify message to the media terminal adapter 40. The media terminaladapter 40 responds to this notify message in accordance with SIPstandards by, for example sending an acknowledgment message. The sendingof a message by the media terminal adapter 40 causes the router 30 tokeep the outbound port open by, for example restarting the router'stimeout period.

Referring to the exemplary embodiment shown in FIG. 3, the Internettelephony regional data center 80 has the pre-proxy server 75 separatedfrom the RTP relay 85. While this separation is not necessary to thepresent invention, in some environments, it allows additionalfunctionality to be more easily added to the pre-proxy server 75. Anexample of such additional functionality is the dynamic allocation ofthe RTP relay 85. The pre-proxy server 75 can allocate the closest RTPrelay between the two calling parties. That allocation enables theability to decrease latency and travel time of the RTP stream. Also asshown in FIG. 3, with the exemplary embodiment, only SIP messages getrouted to the Internet telephony regional data center 80. The RTP streamneed not travel to the data center, and depending upon the location ofthe caller and the destination area 100, can travel within a limitedgeographic area. For example, the telephone handset could be located inCalifornia, and the Internet telephony regional data center 80 could belocated in New Jersey. If the destination area 100 is also inCalifornia, the Internet telephony point of presence in the destinationarea 90 would be allocated by the pre-proxy server 75 to also be inCalifornia. Thus, as noted above, the RTP stream would remain inCalifornia; tending to reduce to latency and travel time of the RTPstream.

In the above, the pre-proxy server 75 is shown and discussed as aseparate computer. This is for convenience of discussion, for purposesof practicing the invention, it does not need to be separate. Instead,the discussed functions that typically would be implemented in apre-proxy server can be implemented in a computer that is alsofunctioning as a server.

1-7. (canceled)
 8. An internet telephony system configured to useSession Initiation Protocol (SIP) signaling to setup a communication ofstreaming packets, the internet telephony system comprising: a relayconfigured to relay streaming packets of the communication between acaller and a call destination; a server configured to receive, processand transmit SIP signaling messages to setup the communication betweenthe caller and the call destination and to select the relay to use forthe communication, the selection being based at least on the quality ofthe communication.
 9. The internet telephony system of claim 8, whereinthe server is configured to select the relay based in part on thegeographic location of the caller.
 10. The internet telephony system ofclaim 8, wherein the server is configured to select the relay based inpart on the geographic location of the call destination.
 11. Theinternet telephony system of claim 8, wherein the server is configuredto select the relay to decrease the latency of the communication. 12.The internet telephony system of claim 8, wherein the server isconfigured to select the relay to decrease the travel time of thecommunication.
 13. The internet telephony system of claim 8, wherein theserver is configured to select the relay to limit the geographical areatraveled by the streaming packets of the communication.
 14. The internettelephony system of claim 8, wherein the relay is associated with apoint-of-presence geographically separated from otherpoints-of-presence.
 15. The internet telephony system of claim 8,wherein the server is configured to select the relay based on a SIPInvite message.
 16. The internet telephony system of claim 8, whereinsaid server is a pre-proxy server.
 17. The internet telephony system ofclaim 8, wherein said streaming packet protocol is the Real TimeTransport Protocol (RTP).
 18. The internet telephony system of claim 8,wherein the relay is a RTP relay.
 19. The internet telephony system ofclaim 8, wherein the server is separated from the relay.
 20. A method ofproviding internet service, the method comprising: providing a serverconfigured to receive, process and transmit Session Initiation Protocol(SIP) signaling messages; receiving a signaling message originating froma caller requesting a communication to a call destination; selecting arelay for use during the communication based at least on the quality ofthe communication; relaying streaming packets of the communication viathe selected relay between the caller and the call destination.
 21. Themethod of claim 20, wherein the selecting the relay is based in part onthe geographic location of the caller.
 22. The method of claim 20,wherein the selecting the relay is based in part on the geographiclocation of the call destination.
 23. The method of claim 20, whereinthe selecting the relay is based in part on improving the latency of thecommunication.
 24. The method of claim 20, wherein the selecting therelay is based in part on improving the travel time of thecommunication.
 25. The method of claim 20, wherein the selecting therelay is based in part on limiting the geographical area traveled by thesteaming packets of the communication.
 26. The method of claim 20,wherein the relay is associated with a point-of-presence geographicallyseparated from other points-of-presence.
 27. The method of claim 20,wherein the SIP signaling message originating from the caller is a SIPInvite.
 28. The method of claim 20, wherein the server operates as apre-proxy server.
 29. The method of claim 20, wherein the streamingpackets are Real Time Transport Protocol (RTP) packets.
 30. The methodof claim 20, wherein the selected relay is a RTP relay.
 31. The methodof claim 20, wherein the server is separated from the relay.
 32. Aninternet telephony server for setting up a communication of streamingpackets, the server configured to receive and process a SessionInitiation Protocol (SIP) signaling message originated from a callerrequesting a communication of streaming packets to a call destination,wherein the server is configured to process information in the SIPsignaling message to select a relay from a plurality of relays availableto relay streaming packets of the communication between the caller andthe call destination, wherein-the server makes the selection based atleast on the quality of the communication.
 33. The server of claim 32,further configured to select the relay based in part on the geographiclocation of the caller.
 34. The server of claim 32, further configuredto select the relay based in part on the geographic location of the calldestination.
 35. The server of claim 32, further configured to selectthe relay to decrease the latency of the communication.
 36. The serverof claim 32, further configured to select the relay to decrease thetravel time of the communication.
 37. The server of claim 32, furtherconfigured to select the relay to limit the geographical area traveledby the steaming packets of the communication.
 38. The server of claim32, wherein each relay is associated with a point-of-presencegeographically separated from other points-of-presence.
 39. The serverof claim 32, wherein the signaling message is a SIP Invite.
 40. Theserver of claim 32, wherein the server operates as a pre-proxy server.41. The server of claim 32, wherein the streaming packets are Real TimeTransport Protocol (RTP) packets.
 42. The server of claim 32, whereinsaid relay comprises a RTP relay.
 43. The server of claim 32, whereinthe server is separated from the plurality of relays.